//
// Created by livio on 2023/3/5.
//

#ifndef CPPDEMO_ILOOP_H
#define CPPDEMO_ILOOP_H

#include "IIOManager.h"

class ITimer;

class ILoop : public std::enable_shared_from_this<ILoop> {
public:
    virtual ~ILoop() = default;

    virtual void init() = 0;

    virtual void run() = 0;

    virtual void runOnce() = 0;

    virtual void wakeup() = 0;

    virtual void close() = 0;

    virtual void isClosed() = 0;

    virtual void setBusyLoop(bool on) = 0;

protected:
private:
};

#endif //CPPDEMO_ILOOP_H
